/*
 Класс предок для всех объектов - элементов интерфейса
*/
function ElementObject(dom_elt, container) {
	this._dom_elt = dom_elt;
	this.container = container;
}
ElementObject.getId = function() { // возвращает текстовый идентификатор элемента
		return jQuery(this._dom_elt).attr("id");
	}


function CreateItemContainer() {
	this._selected_btn_idx = null;
	this._buttons_forms_relations = []; // позволяет получить форму имея кнопку
	this._buttons = []; // позволяет получить кнопку по ее id
	
	// указать на кнопку, которая выбрана в данный момент
	this.setSelectedButton = function(button) {
		this._selected_btn_idx = button.getId();
	}
	
	// сказать что есть ФОРМА и связанная с ней КНОПКА
	this.addFormButton = function(form, button) {
		this._buttons_forms_relations[button.getId()] = form; 
		this._buttons[button.getId()] = button;
	}
	
	this.onButtonClick = function(button) {
		var selected_type = this._selected_btn_idx;
		var new_type = button.getId();
		this._buttons_forms_relations[new_type].show();
		this._buttons_forms_relations[selected_type].hide();
					
		var old_color = this._buttons[selected_type].getColor();
		var new_color = button.getColor();

		this.changeView(selected_type, old_color, new_type, new_color);
		this.setSelectedButton(button);
	}
}
CreateItemContainer.prototype.changeView = function (old_type, old_color, new_type, new_color) { // изменить оформление
	}

function DocTypeButton(dom_elt, container) {
	ElementObject.call(this, dom_elt, container);
	/*
	 * интерфейс этой штуки следующий
	 * getColor() : строка 01, 02, 03 - индекс цвета, с префиксом 0
	 * getId() : строка, в данном случае имя типа
	 * isSelected() : boolean
	 */
	
	var obj = this;
	jQuery(this._dom_elt).bind("click", function(event) {
		event.preventDefault();
		obj.container.onButtonClick(obj);
	});
}
DocTypeButton.prototype = new ElementObject;

function Form(dom_elt, container) {
	ElementObject.call(this, dom_elt, container);
	
	this.show = function() {
		jQuery(this._dom_elt).show();
	}
	
	this.hide = function() {
		jQuery(this._dom_elt).hide();
	}
}
Form.prototype = new ElementObject;
